/*
 * ITitleList.h
 *
 *  Created on: 6 May 2010
 *      Author: Savramis Sartios
 */

#ifndef ITITLELIST_H_
#define ITITLELIST_H_
#include <string>
#include <map>
#include "../Iterator/ITitleListIterator.h"
using namespace std;

/**
 * Interface for lists which contain 2 elements with dependency in one position.
 * Depedency : key=>value
 */
class ITitleList{
public:
	/**
	 * Return an iterator for the list
	 * \return ICodeIterator
	 */
	virtual ITitleListIterator *	getIterator()=0;
	/**
	 * Return the size of the list
	 * \return size
	 */
	virtual int			count()const=0;
	/**
	 * Return the element with the specific code
	 * \param  code
	 * \return pointer string
	 */
	virtual string *	getElement(const string *code)const=0;
	/**
	 * Add two elements in the list with dependency : "code" --> "title"
	 * \return bool
	 */
	virtual bool		add(const string *code,const string *title)=0;

	virtual map<string*,string*>::iterator	getStart()=0;
};


#endif /* IDOUBLELIST_H_ */
